//
//  NSString+Common.h
//  TimeBoat
//
//  Created by Mac on 2020/3/11.
//  Copyright © 2020yang. All rights reserved.
//


#import <Foundation/Foundation.h>

NS_ASSUME_NONNULL_BEGIN

@interface NSString (Common)

///是否为空字符串
-(BOOL)hhe_isNotEmpty;

///判断字符串是否为空
+(BOOL)hhe_isEmpty:(NSString*)str;

///数字转万、亿
-(NSString *)hhe_transToWanYi;


#pragma mark 正则校验
/// 判断是不是手机号码 首位为1 后面10个数
- (BOOL)hhe_isMobileNumber;

/// 8-16 密码判断包含大小字母和数字
- (BOOL)hhe_isPassWorldLength;

/// 判断身份证验证
- (BOOL)hhe_idCard;

#pragma mark 时间
///获取时间戳
+(NSString *)hhe_getNowTimeTimestamp;

///时间戳转时间
-(NSString *)hhe_timeStampToNowTime;

///获取时间戳（毫秒级）
+ (NSString *)hhe_timeStampToNowTimeSSS;

///给定时间戳 和 转化格式
-(NSString *)hhe_timeStampToNowTimeWithDateformatter:(NSString *)formatterStr;
///传入时间格式 (注意：此方法可以把佛教日历转成日历)
- (NSString *)hhe_gregorianCalendarTimeStampToNowTimeWithDateformatter:(NSString *)formatterStr;
///时间转时间戳
-(NSString *)hhe_transToTimeStamp;

///获取今天0点的时间戳
-(NSString *)hhe_getTodayTimestamp;

///时间戳转几分前，多久前
- (NSString *)hhe_updateBeforeTime;

///时间戳转几分后，多久以后
- (NSString *)hhe_updateAfterTime;

///转 昨天 9：10 格式
- (NSString *)hhe_getTimeWithHHmmFormart;

///对比两个时间戳的时间差  是否大于 min(多少) 分钟
- (BOOL)hhe_comparisonTimeForTimeInterval:(NSString *)otherTimeInterval min:(int)min;

///秒转分秒  //传入 秒  得到  xx分钟xx秒
- (NSString *)hhe_getMMSSFromSS;

#pragma mark Frame
///计算文字的宽度
-(CGFloat)hhe_calculateStrWidthwithHigh:(CGFloat)high withFont:(UIFont*)font;

///计算文字的高度
-(CGFloat)hhe_calculateStrHighWithWidth:(CGFloat)width withFont:(UIFont*)font;

#pragma mark  json转换相关
///json 转  字典
- (NSDictionary *)hhe_jsonStringConvertToDict;


#pragma mark 划虚线相关
/**
 *  通过 CAShapeLayer 方式绘制虚线
 *
 *  param lineView:       需要绘制成虚线的view
 *  param lineLength:     虚线的宽度
 *  param lineSpacing:    虚线的间距
 *  param lineColor:      虚线的颜色
 *  param lineDirection   虚线的方向  YES 为水平方向， NO 为垂直方向
 **/
+ (void)drawLineOfDashByCAShapeLayer:(UIView *)lineView lineLength:(int)lineLength lineSpacing:(int)lineSpacing lineColor:(UIColor *)lineColor lineDirection:(BOOL)isHorizonal;

#pragma mark  获取当天时间点时间戳
/**
 *  param lineView:       小时 例如凌晨00：00
 *  param lineLength:     分钟
 **/
+ (NSString *)getTime:(NSInteger)hour andMinute:(NSInteger)minute;

#pragma mark  获取某天时间点时间戳
/**
 *  param lineView:       小时 例如凌晨00：00
 *  param lineLength:     分钟
 *  param thatDayTime:    某天时间戳
 **/
+ (NSString *)getOneDateWithHour: (NSInteger)hour andMinute:(NSInteger)minute thatDayTime:(double)thatDayTime;

@end

NS_ASSUME_NONNULL_END
